dragdest: Handle NULL content formats everywhere
authorBenjamin Otte <otte@redhat.com>
Mon, 17 Feb 2020 02:04:37 +0000 (03:04 +0100)
committerBenjamin Otte <otte@redhat.com>
Mon, 17 Feb 2020 20:56:16 +0000 (21:56 +0100)
NULL means we don't do content formats checks and accept everything.

We use this for notebook arrows or expanders that react to ongoing
drags.

gtk/gtkdragdest.c

index 26cdc6eb53d014fb301170e60caf7390d3d251f8..eddd79b709d59ed237952554cd6af92302ca9d6c 100644 (file)
@@ -448,7 +448,9 @@ gtk_drop_target_set_formats (GtkDropTarget     *dest,
  *
  * Gets the data formats that this drop target accepts.
  *
- * Returns: the supported data formats
+ * If the result is %NULL, all formats are expected to be supported.
+ *
+ * Returns: (nullable): the supported data formats
  */
 GdkContentFormats *
 gtk_drop_target_get_formats (GtkDropTarget *dest)
@@ -563,6 +565,9 @@ gtk_drop_target_find_mimetype (GtkDropTarget *dest)
   if (!dest->drop)
     return NULL;
 
+  if (dest->formats == NULL)
+    return NULL;
+
   return gtk_drop_target_match (dest, dest->drop);
 }
 
@@ -573,6 +578,9 @@ gtk_drop_target_accept (GtkDropTarget *dest,
   if ((gdk_drop_get_actions (drop) & gtk_drop_target_get_actions (dest)) == 0)
     return FALSE;
 
+  if (dest->formats == NULL)
+    return TRUE;
+
   return gdk_content_formats_match (dest->formats, gdk_drop_get_formats (drop));
 }